gtk4.git
12 years agoFix gtk3-demo MSVC Project
Chun-wei Fan [Mon, 24 Jun 2013 06:25:31 +0000 (14:25 +0800)]
Fix gtk3-demo MSVC Project

Build the new listbox.c source file, as that file was missed.

12 years agotests: Ignore deprecations
Benjamin Otte [Sun, 23 Jun 2013 23:13:44 +0000 (01:13 +0200)]
tests: Ignore deprecations

... for where there's no replacement.

12 years agoOptimize gdk_x11_screen_supports_net_wm_hint()
John Lindgren [Sun, 23 Jun 2013 19:22:13 +0000 (21:22 +0200)]
Optimize gdk_x11_screen_supports_net_wm_hint()

Move the call to gdk_x11_atom_to_xatom_for_display() outside of the
search loop in gdk_x11_screen_supports_net_wm_hint().  In my test case
(running Audacious for about a minute), this reduced the total number of
hash table lookups performed from 370,000 to 230,000.

https://bugzilla.gnome.org/show_bug.cgi?id=702913

12 years agoGMenuModel -> GtkMenu binding: show submenu items
Ryan Lortie [Sat, 22 Jun 2013 13:34:21 +0000 (09:34 -0400)]
GMenuModel -> GtkMenu binding: show submenu items

In the non-submenu case we bind the 'visibility' attribute to the
tracker, which takes care of showing the item.  In the submenu case, we
don't bind all of the properties, so we miss this one.

Deal with it by just show()ing the submenu item.

https://bugzilla.gnome.org/show_bug.cgi?id=702332

12 years agoGtkFileChooserButton: Also emit 'file-set' when changing the selection through the...
Federico Mena Quintero [Sat, 22 Jun 2013 00:14:36 +0000 (19:14 -0500)]
GtkFileChooserButton: Also emit 'file-set' when changing the selection through the combo box

https://bugzilla.gnome.org/show_bug.cgi?id=696498

12 years agoGtkFileChooserEntry: don't inline-complete if the entry doesn't have the focus
Federico Mena Quintero [Fri, 21 Jun 2013 23:34:31 +0000 (18:34 -0500)]
GtkFileChooserEntry: don't inline-complete if the entry doesn't have the focus

When the file chooser changes directories, it tells the GtkFileChooserEntry to
change its base folder (i.e. the folder from which relative pathnames are resolved).
GtkFileChooserEntry then starts loading a GtkFileSystemModel asynchronously.
In the finished_loading_cb(), however, it would always ask the GtkEntryCompletion
to insert the completion prefix, since that finished_loading_cb() is what is also used
while the user is typing *in the entry*.

But when the entry doesn't have the focus (e.g. the user changed directories by double-clicking
on the file list in the file chooser), there's no reason to insert completions at all.

https://bugzilla.gnome.org/show_bug.cgi?id=672271
Signed-off-by: Federico Mena Quintero <federico@gnome.org>
12 years agoBump version
Matthias Clasen [Fri, 21 Jun 2013 23:32:34 +0000 (19:32 -0400)]
Bump version

12 years ago3.9.6
Matthias Clasen [Fri, 21 Jun 2013 22:32:06 +0000 (18:32 -0400)]
3.9.6

12 years agoa11y: Include testdata in EXTRA_DIST
Matthias Clasen [Fri, 21 Jun 2013 18:05:21 +0000 (14:05 -0400)]
a11y: Include testdata in EXTRA_DIST

Otherwise tests don't work from a tarball release.

12 years agofilechooser: In testfilechooser, be strict about the --action option
Federico Mena Quintero [Fri, 21 Jun 2013 15:19:54 +0000 (10:19 -0500)]
filechooser: In testfilechooser, be strict about the --action option

It would default to GTK_FILE_CHOOSER_ACTION_OPEN if the user's specified --action could not be
parsed.  I can never remember what the right options are, so make the program bail out
if the user specifies an unrecognized option.

Signed-off-by: Federico Mena Quintero <federico@gnome.org>
12 years agoRemove rest of gtk-show-input-method-menu and gtk-show-unicode-menu
William Jon McCann [Fri, 21 Jun 2013 12:55:55 +0000 (08:55 -0400)]
Remove rest of gtk-show-input-method-menu and gtk-show-unicode-menu

They are no longer used.

12 years agoGtkEntry: ellipsize placeholder text
Jonh Wendell [Thu, 20 Jun 2013 17:39:28 +0000 (14:39 -0300)]
GtkEntry: ellipsize placeholder text

The placeholder string is truncated when there's no
room for it in entry's width.

So, by ellipsizing it, the user can notice the text
was truncated so that they can workaround that by,
for example, maximizing the window.

https://bugzilla.gnome.org/show_bug.cgi?id=702763

12 years agotestsuite: Don't use deprecated functions
Benjamin Otte [Fri, 21 Jun 2013 00:22:45 +0000 (02:22 +0200)]
testsuite: Don't use deprecated functions

12 years agofilechooser: Actually return a value
Benjamin Otte [Thu, 20 Jun 2013 16:35:14 +0000 (18:35 +0200)]
filechooser: Actually return a value

12 years agotreeview: Remove duplicate function
Benjamin Otte [Thu, 20 Jun 2013 13:07:58 +0000 (15:07 +0200)]
treeview: Remove duplicate function

12 years agoGtkFileChooser: Missing hour on today's files for it&hu locales on Win32
Valerio Messina [Thu, 13 Jun 2013 20:40:47 +0000 (22:40 +0200)]
GtkFileChooser: Missing hour on today's files for it&hu locales on Win32

The file chooser does not show the hours for files modified today
when using it & hu locales on Win32.  This is due to the %k format conversion
for strftime() that is in Olson's Timezone Package, which msvcrt.dll doesn't have.
Cygwin has it, though.

So for now, we just use a %H format.  While %k would render
six-in-the-morning as " 6" (6 preceded by a space), %H will render it
as "06".

https://bugzilla.gnome.org/show_bug.cgi?id=560337

12 years agoFix gtk_text_iter_forward_to_tag_toggle() for end iter
Sébastien Wilmet [Wed, 3 Apr 2013 11:41:44 +0000 (13:41 +0200)]
Fix gtk_text_iter_forward_to_tag_toggle() for end iter

The function must return TRUE only if there is a tag toggle _after_ the
iter, not _at_ the iter. So for the end iter, the function must always
return FALSE.

Add also unit tests for gtk_text_iter_forward_to_tag_toggle().

https://bugzilla.gnome.org/show_bug.cgi?id=691266

12 years agofilechooser: Fix misleading documentation for gtk_file_chooser_set_preview_widget()
Timothy Arceri [Wed, 29 May 2013 07:20:26 +0000 (17:20 +1000)]
filechooser: Fix misleading documentation for gtk_file_chooser_set_preview_widget()

https://bugzilla.gnome.org/show_bug.cgi?id=701174

12 years agoquartz: remove check for keymap changes from update_keymap()
Michael Natterer [Thu, 20 Jun 2013 15:21:25 +0000 (17:21 +0200)]
quartz: remove check for keymap changes from update_keymap()

The function is now only called when the keymap has actually
changed. bug #698183.
(cherry picked from commit e62709da2ee6619f26c8446b545418e5f1b9e151)

12 years agoquartz: update the keymap only if the input method changed
Michael Natterer [Thu, 20 Jun 2013 15:09:07 +0000 (17:09 +0200)]
quartz: update the keymap only if the input method changed

and not on each keystroke, which for some IMs apparently caused a full
update on each keystroke, not just a check for changes. Patch from
Takuro Ashie, bug #698183.

12 years agoImprove doc of gtk_text_iter_forward_search()
Sébastien Wilmet [Thu, 20 Jun 2013 10:09:20 +0000 (12:09 +0200)]
Improve doc of gtk_text_iter_forward_search()

It was not possible to know if the @limit was for @match_start or
@match_end. It was documented for backward_search(), but not for
forward_search().

https://bugzilla.gnome.org/show_bug.cgi?id=390048

12 years agogtkfilechooserbutton: fix documentation typo
Claudio Saavedra [Thu, 20 Jun 2013 08:47:37 +0000 (11:47 +0300)]
gtkfilechooserbutton: fix documentation typo

https://bugzilla.gnome.org/show_bug.cgi?id=702695

12 years agofilechooser: In testfilechooser, add buttons to get the selection and the current...
Federico Mena Quintero [Wed, 19 Jun 2013 18:37:40 +0000 (13:37 -0500)]
filechooser: In testfilechooser, add buttons to get the selection and the current name

12 years agofilechooser: Add gtk_file_chooser_get_current_name()
Jonh Wendell [Mon, 17 Jun 2013 18:47:56 +0000 (15:47 -0300)]
filechooser: Add gtk_file_chooser_get_current_name()

Currently you can only set the current filename, but not
get it. It's useful to be able to get it in save
dialogs, where the user has typed the desired filename
and you are not in a real directory (recent used, for
example).

https://bugzilla.gnome.org/show_bug.cgi?id=702497

12 years agoIconTheme: Move changed emission to an idle
Alexander Larsson [Wed, 19 Jun 2013 09:06:20 +0000 (11:06 +0200)]
IconTheme: Move changed emission to an idle

By delaying the emission to an idle we avoid a lot of tricky
reentrancy issues. For instance, a normal gtk_icon_theme_choose_icon()
call could in very rare cases (when a user updated an icon theme) emit
a signal which could affect the icon currently being looked up.  This
kind of reentrancy is very hard to test against, especially when it is
so rare, so we're better of avoiding it.

There is no real value to get the change signal directly anyway. All
it can do is affect which icon is rendered the next frame, and we will
handle the queued emission before rendering. Not to mention that icon
theme change detection is polled anyway, so it is already delayed.

https://bugzilla.gnome.org/show_bug.cgi?id=694755

12 years ago[l10n] Updated Italian translation.
Milo Casagrande [Wed, 19 Jun 2013 09:01:23 +0000 (11:01 +0200)]
[l10n] Updated Italian translation.

12 years agoIconTheme: Clear caches when reloading theme
Alexander Larsson [Wed, 19 Jun 2013 07:35:24 +0000 (09:35 +0200)]
IconTheme: Clear caches when reloading theme

When we're reloading the theme in ensure_valid_themes (due to noticing
that a theme dir has changed) we need to also clear the icon cache
as it will not be valid for the new theme.

We already do this in do_theme_change(), but ensure_valid_themes()
was missing this.

https://bugzilla.gnome.org/show_bug.cgi?id=702598

12 years agoIconCache: Keep a ref on the GtkIconData
Alexander Larsson [Wed, 19 Jun 2013 07:32:38 +0000 (09:32 +0200)]
IconCache: Keep a ref on the GtkIconData

The icon data in GttkIconInfo->data is currently owned by the
IconThemeDir->icon_data hashtable. However, on e.g. a theme change
blow_themes() destroys the dirs and thus the data, meaning any
outstanding GtkIconInfo points to stale data.

We solve this by adding a refcount to GtkIconData and reffing it
from GtkIconInfo.

https://bugzilla.gnome.org/show_bug.cgi?id=702598

12 years agoUpdated POTFILES.skip
Piotr Drąg [Tue, 18 Jun 2013 15:24:49 +0000 (17:24 +0200)]
Updated POTFILES.skip

12 years agoGtkBuilder: add new constructor APIs
Ryan Lortie [Tue, 18 Jun 2013 14:19:44 +0000 (10:19 -0400)]
GtkBuilder: add new constructor APIs

Add new APIs gtk_builder_new_from_{file,resource,string}() and encourage
their use over the older _add_from_...() APIs.

https://bugzilla.gnome.org/show_bug.cgi?id=679930

12 years agodocs: GtkBuilder: warn about unusual GError use
Ryan Lortie [Sat, 14 Jul 2012 15:03:29 +0000 (11:03 -0400)]
docs: GtkBuilder: warn about unusual GError use

GtkBuilder returns GError for _add_from_{file,resource,string}(),
implying that the user should be able to recover from these errors.
Mention in the docs that it's unreasonable to try to do this.

https://bugzilla.gnome.org/show_bug.cgi?id=679930

12 years agogtk-demo: Add GtkListBox demo
Alexander Larsson [Tue, 18 Jun 2013 14:09:55 +0000 (16:09 +0200)]
gtk-demo: Add GtkListBox demo

12 years agowin32: don't convert '\n' to '\r\n' when copying if it already is '\r\n'
Aleksander Morgado [Wed, 27 Feb 2013 08:22:27 +0000 (09:22 +0100)]
win32: don't convert '\n' to '\r\n' when copying if it already is '\r\n'

https://bugzilla.gnome.org/show_bug.cgi?id=649390

12 years agoRevert "GtkWindow: Move cairo_save/restore from marshaller"
Alexander Larsson [Tue, 18 Jun 2013 09:11:14 +0000 (11:11 +0200)]
Revert "GtkWindow: Move cairo_save/restore from marshaller"

This reverts commit 6c7689506f8b6c71522e6c8a25a2b4523641592c.

This is not right as we need to save/restore around *each*
callback, not just each emission.

12 years agoTajik translation updated
Victor Ibragimov [Tue, 18 Jun 2013 05:33:37 +0000 (10:33 +0500)]
Tajik translation updated

12 years agoEnsure broadway backend links when using as-needed linking
Jani Välimaa [Mon, 17 Jun 2013 19:55:30 +0000 (21:55 +0200)]
Ensure broadway backend links when using as-needed linking

Error message at:
http://pkgsubmit.mageia.org/uploads/failure/cauldron/core/release/20130617185755.wally.valstar.6794/log/gtk+3.0-3.9.4-1.mga4/build.0.20130617185804.log

<ovitters> mclasen_:
http://svnweb.mageia.org/packages/cauldron/gtk%2B3.0/current/SOURCES/gtk%2B-3.9.4-linking.patch?revision=444164&view=markup
<ovitters> mclasen_: gtk doesn't seem to link properly on Mageia
(as-needed thing probably)
<mclasen_> sure, looks fine
<ovitters> can I commit this?
<mclasen_> yes, please commit

12 years agotestlist: Test double click mode
Alexander Larsson [Mon, 17 Jun 2013 13:14:29 +0000 (15:14 +0200)]
testlist: Test double click mode

12 years agolistbox: handle moving mouse out of widget with button down
Alexander Larsson [Mon, 17 Jun 2013 13:13:17 +0000 (15:13 +0200)]
listbox: handle moving mouse out of widget with button down

Unset active row, etc when mousing out of the widget totally.

12 years agolistbox: Properly handle double click
Alexander Larsson [Mon, 17 Jun 2013 13:12:26 +0000 (15:12 +0200)]
listbox: Properly handle double click

We never want to handle GDK_2BUTTON_PRESS like a normal first click.

12 years agolistbox: Rewrite coords from child windows
Alexander Larsson [Mon, 17 Jun 2013 12:52:05 +0000 (14:52 +0200)]
listbox: Rewrite coords from child windows

If button events are from child windows we need to rewrite
the coordinates to our window.

12 years agoBump version
Matthias Clasen [Mon, 17 Jun 2013 12:15:33 +0000 (08:15 -0400)]
Bump version

12 years ago3.9.4
Matthias Clasen [Mon, 17 Jun 2013 10:47:43 +0000 (06:47 -0400)]
3.9.4

12 years agoAdd state propagation changes to release notes
Matthias Clasen [Sun, 16 Jun 2013 14:33:09 +0000 (10:33 -0400)]
Add state propagation changes to release notes

12 years agoAvoid an uninitialized variable access
Matthias Clasen [Sun, 16 Jun 2013 03:36:33 +0000 (23:36 -0400)]
Avoid an uninitialized variable access

12 years agoAvoid an uninitialized variable access
Matthias Clasen [Sun, 16 Jun 2013 03:36:10 +0000 (23:36 -0400)]
Avoid an uninitialized variable access

12 years agoFix a small memory leak
Matthias Clasen [Sun, 16 Jun 2013 03:35:51 +0000 (23:35 -0400)]
Fix a small memory leak

12 years agoFix a small memory leak
Matthias Clasen [Sun, 16 Jun 2013 03:35:25 +0000 (23:35 -0400)]
Fix a small memory leak

12 years agoGtkBuilder: don't leak callbacks
Matthias Clasen [Sun, 16 Jun 2013 03:33:51 +0000 (23:33 -0400)]
GtkBuilder: don't leak callbacks

This was noticed while running the testsuite under valgrind.

12 years agoAvoid an uninitialized variable access
Matthias Clasen [Sun, 16 Jun 2013 02:00:51 +0000 (22:00 -0400)]
Avoid an uninitialized variable access

https://bugzilla.gnome.org/show_bug.cgi?id=702370

12 years agoFix iconview-empty reftest
Matthias Clasen [Sun, 16 Jun 2013 01:31:41 +0000 (21:31 -0400)]
Fix iconview-empty reftest

The reference image for this test was inadvertedly relying
on an incorrect initial icon-size property of GtkImage.

12 years agoRemove testing test again
Matthias Clasen [Sun, 16 Jun 2013 01:18:12 +0000 (21:18 -0400)]
Remove testing test again

This one fails on the build servers.

12 years agoAdd a few tests back
Matthias Clasen [Sat, 15 Jun 2013 23:46:51 +0000 (19:46 -0400)]
Add a few tests back

These were lost in the Makefile cleanup.

12 years agoGtkImage: Fix the initial value of icon-size
Matthias Clasen [Sun, 16 Jun 2013 00:22:18 +0000 (20:22 -0400)]
GtkImage: Fix the initial value of icon-size

Since we are pulling the icon-size out of the icon helper now,
we should set its icon-size when constructing it.

12 years agoFix object test
Matthias Clasen [Sat, 15 Jun 2013 23:47:33 +0000 (19:47 -0400)]
Fix object test

12 years agoFix defaultvalue test
Matthias Clasen [Sat, 15 Jun 2013 23:47:19 +0000 (19:47 -0400)]
Fix defaultvalue test

12 years agotestsuite: Avoid g_test_trap_fork
Matthias Clasen [Sat, 15 Jun 2013 20:27:04 +0000 (16:27 -0400)]
testsuite: Avoid g_test_trap_fork

Fix cellarea tests to use g_test_trap_subprocess instead.

12 years agoAdd listbox tests
Matthias Clasen [Sat, 15 Jun 2013 20:02:16 +0000 (16:02 -0400)]
Add listbox tests

12 years agotestsuite: clean up build machinery a bit
Matthias Clasen [Sat, 15 Jun 2013 18:23:22 +0000 (14:23 -0400)]
testsuite: clean up build machinery a bit

No point in setting LDADD for every single binary,
when we can do it just once. Also, generate test.in files.

12 years agoGtkListBox: fix docs
Matthias Clasen [Sat, 15 Jun 2013 17:55:31 +0000 (13:55 -0400)]
GtkListBox: fix docs

New types need to be added to gtk3.types.in to have introspected
data (type hierarchy, properties, signals) show up in the docs.

12 years agoUpdated POTFILES.in
Piotr Drąg [Sat, 15 Jun 2013 17:09:35 +0000 (19:09 +0200)]
Updated POTFILES.in

12 years agoGtkListBox: cosmetics
Matthias Clasen [Sat, 15 Jun 2013 16:13:28 +0000 (12:13 -0400)]
GtkListBox: cosmetics

Clean up formatting trivia, adjust includes to gtk conventions,
use P_() for properties, etc.

12 years agoGtkSearchBar: Mention we don't handle Ctrl+F for the app
Bastien Nocera [Mon, 3 Jun 2013 13:07:07 +0000 (15:07 +0200)]
GtkSearchBar: Mention we don't handle Ctrl+F for the app

There's probably an expectation from the app developers that
Ctrl+F or similar common shortcuts for starting a search will
be handled by the widget, when this is not the case. Explicitely
mention it in the docs to avoid confusion.

https://bugzilla.gnome.org/show_bug.cgi?id=701523

12 years agoGtkHeaderBar: Fix buildable function names
Bastien Nocera [Fri, 31 May 2013 10:59:46 +0000 (12:59 +0200)]
GtkHeaderBar: Fix buildable function names

It's a GtkHeaderBar, not GtkHeader.

https://bugzilla.gnome.org/show_bug.cgi?id=701346

12 years agoGtkHeaderBar: Make labels creation available privately
Bastien Nocera [Fri, 24 May 2013 13:07:16 +0000 (15:07 +0200)]
GtkHeaderBar: Make labels creation available privately

So it can be reused in subclasses

https://bugzilla.gnome.org/show_bug.cgi?id=701345

12 years agoUpdated POTFILES.in
Piotr Drąg [Thu, 13 Jun 2013 21:09:45 +0000 (23:09 +0200)]
Updated POTFILES.in

12 years agoGtkStack: Switch order on left/right up/down transitions.
Alexander Larsson [Thu, 13 Jun 2013 18:55:05 +0000 (20:55 +0200)]
GtkStack: Switch order on left/right up/down transitions.

When the new child is on the left, scroll right. This makes the
thing look physically "real".

12 years agoGtkStack: Fix drawing of sliding
Alexander Larsson [Thu, 13 Jun 2013 18:50:41 +0000 (20:50 +0200)]
GtkStack: Fix drawing of sliding

We were not drawing the view window, so the old widget
was clipped for the sliding transitions.

12 years agoGtkStack: Add position-dependent slide transitions
Erick Pérez Castellanos [Thu, 13 Jun 2013 18:33:42 +0000 (20:33 +0200)]
GtkStack: Add position-dependent slide transitions

These go left/right or up/down depending on the relative
order of the children being switched between.

12 years agobroadway: Add win32 support
Tarnyko [Thu, 13 Jun 2013 17:35:43 +0000 (19:35 +0200)]
broadway: Add win32 support

12 years agobroadway: Support TCP displays
Tarnyko [Thu, 13 Jun 2013 16:55:40 +0000 (18:55 +0200)]
broadway: Support TCP displays

12 years agobroadway: Only use gio-unix on G_OS_UNIX
Tarnyko [Thu, 13 Jun 2013 16:15:10 +0000 (18:15 +0200)]
broadway: Only use gio-unix on G_OS_UNIX

12 years agobroadway: Remove unused includes
Tarnyko [Thu, 13 Jun 2013 16:09:32 +0000 (18:09 +0200)]
broadway: Remove unused includes

12 years agobroadway: Add configure checks for sys/mman.h
Tarnyko [Thu, 13 Jun 2013 15:58:53 +0000 (17:58 +0200)]
broadway: Add configure checks for sys/mman.h

12 years agodocs: Add GtkListBox to docs
Alexander Larsson [Thu, 13 Jun 2013 15:55:09 +0000 (17:55 +0200)]
docs: Add GtkListBox to docs

12 years agoreftests: Fix for state propagation changes
Benjamin Otte [Thu, 13 Jun 2013 13:30:57 +0000 (15:30 +0200)]
reftests: Fix for state propagation changes

12 years agox11: Remove motif dnd leftovers
Benjamin Otte [Mon, 3 Jun 2013 15:11:26 +0000 (17:11 +0200)]
x11: Remove motif dnd leftovers

12 years agotreeview: Use gtk_adjustment_configure()
Benjamin Otte [Fri, 31 May 2013 10:38:40 +0000 (12:38 +0200)]
treeview: Use gtk_adjustment_configure()

... instead of manually setting all the values. Makes for nicer code and
less signal emissions.

12 years agoGtkListBox: Consider width of filtered rows
Alexander Larsson [Thu, 13 Jun 2013 08:47:52 +0000 (10:47 +0200)]
GtkListBox: Consider width of filtered rows

Without this lists keep shrinking in width as they are filtered, whic
looks really bad.

12 years agoGtkListBox: Protect against reentrancy.
Alexander Larsson [Wed, 12 Jun 2013 11:20:15 +0000 (13:20 +0200)]
GtkListBox: Protect against reentrancy.

Activating a row may destroy the widget, so keep a ref since
we're doing thing to the listbox after emission.

12 years agoGtkListBox: minor fix
Alexander Larsson [Wed, 12 Jun 2013 11:08:36 +0000 (13:08 +0200)]
GtkListBox: minor fix

Move the check inside the existing chech which also checks
for active_row != NULL for extra safety.

12 years agoGtkListBox: Add style classes for lists and rows
Alexander Larsson [Wed, 12 Jun 2013 10:00:11 +0000 (12:00 +0200)]
GtkListBox: Add style classes for lists and rows

12 years agoGtkListBox: Add getter for activate_on_single_click
Alexander Larsson [Wed, 12 Jun 2013 07:40:06 +0000 (09:40 +0200)]
GtkListBox: Add getter for activate_on_single_click

12 years agoGtkListBox: Rename reXXX to invalidate_XXX
Alexander Larsson [Tue, 11 Jun 2013 14:58:22 +0000 (16:58 +0200)]
GtkListBox: Rename reXXX to invalidate_XXX

This is lets us later move to a setup where the rows are not
immediately resorted but queued until next layout.

12 years agotestgtk: Test GtkListBox placeholder widgets
Alexander Larsson [Tue, 11 Jun 2013 14:53:46 +0000 (16:53 +0200)]
testgtk: Test GtkListBox placeholder widgets

12 years agoGtkListBox: Add placeholder widget support
Alexander Larsson [Tue, 11 Jun 2013 14:53:31 +0000 (16:53 +0200)]
GtkListBox: Add placeholder widget support

12 years agoGtkListBox: Track the number of visible children
Alexander Larsson [Tue, 11 Jun 2013 14:20:45 +0000 (16:20 +0200)]
GtkListBox: Track the number of visible children

12 years agoGtkListBox: Track visible in the row
Alexander Larsson [Tue, 11 Jun 2013 14:13:00 +0000 (16:13 +0200)]
GtkListBox: Track visible in the row

This is a minor performance improvement, but its mainly to
allow us to track when n_visible_children changes.

12 years agoGtkListBox: Open code the update_header calls in add()
Alexander Larsson [Tue, 11 Jun 2013 14:07:42 +0000 (16:07 +0200)]
GtkListBox: Open code the update_header calls in add()

Rather than reusing row_visibility_changed. This means
row_visibility_changed really means that the row visibility changed.

12 years agoGtkListBox: Make reseparate a no-op for hidden lists
Alexander Larsson [Tue, 11 Jun 2013 14:04:58 +0000 (16:04 +0200)]
GtkListBox: Make reseparate a no-op for hidden lists

We already take care to not track headers when the listbox is hidden,
because that can be very expensive during creation, so we might as
well skip reseparate() too. The only time we don't want to skip it
is when we're about to show the list.

12 years agoGtkListBox: Remove some unnecessary code
Alexander Larsson [Tue, 11 Jun 2013 13:22:09 +0000 (15:22 +0200)]
GtkListBox: Remove some unnecessary code

the unhighlight call already NULLs out drag_highlighted_row

12 years agoGtkListBox: Fix docs
Alexander Larsson [Tue, 11 Jun 2013 13:18:51 +0000 (15:18 +0200)]
GtkListBox: Fix docs

Removed some cut/paste leftovers

12 years agoGtkListBox: Allow unselecting of rows in SINGLE mode
Alexander Larsson [Tue, 11 Jun 2013 13:04:02 +0000 (15:04 +0200)]
GtkListBox: Allow unselecting of rows in SINGLE mode

12 years agoGtkListBox: Rename separators to headers
Alexander Larsson [Tue, 11 Jun 2013 12:09:19 +0000 (14:09 +0200)]
GtkListBox: Rename separators to headers

12 years agoGtkListBox: Remove refilter signal
Alexander Larsson [Tue, 11 Jun 2013 11:56:38 +0000 (13:56 +0200)]
GtkListBox: Remove refilter signal

This was added from https://bugzilla.gnome.org/show_bug.cgi?id=691979
where it was wanted in order to get a "all children filtered" kind
of row. However, the solution is not really generic enough, because
filtering can happen for other reasons than a full refilter (i.e. due
to a row change), and the partial fix you can get by counting children
after refilter can be achieved by manually doing it whenever you manually
called refilter anyway.

Its possible we should have some better solution for the "empty state"
though.

12 years agoGtkListBox: Add docs
Alexander Larsson [Tue, 11 Jun 2013 10:59:32 +0000 (12:59 +0200)]
GtkListBox: Add docs

12 years agoGtkWidget: Change which states propagate
Alexander Larsson [Mon, 10 Jun 2013 15:02:34 +0000 (17:02 +0200)]
GtkWidget: Change which states propagate

Historically the following states propagated to children:
  GTK_STATE_FLAG_ACTIVE
  GTK_STATE_FLAG_PRELIGHT
  GTK_STATE_FLAG_SELECTED
  GTK_STATE_FLAG_INSENSITIVE
  GTK_STATE_FLAG_INCONSISTENT
  GTK_STATE_FLAG_BACKDROP

However, several of these are problematic on containers like GtkListBox.
For instance, if a row is ACTIVE or SELECTED then all children (like e.g
a button) inside the row will *also* look active/selected. This is almost
never right. The right way to theme this is to catch e.g. SELECTED on the
container itself and set e.g. the color and let the children inherit
the color instead of the flag.

We now propagate only these flags:
  GTK_STATE_FLAG_INSENSITIVE
  GTK_STATE_FLAG_BACKDROP

Which make sense to be recursive as they really affect every widget
inside the container.

However, this is a CSS theme break, and while most things continue working
as-is some themes may need minor tweaks.

12 years agoGtkListBox: Remove add_to_scrolled()
Alexander Larsson [Mon, 10 Jun 2013 14:07:20 +0000 (16:07 +0200)]
GtkListBox: Remove add_to_scrolled()

Now that we automatically set up the focus_vadjustment we only
need the adjustment to handle the page-up/down scroll length correctly.

We use parent_set to automatically pick up the adjustment from a
scrollable (i.e. viewport) parent which makes add_to_scrolled useless, so
it can be removed.

12 years agoGtkScrollableWindow: Automatically set focus adjustments
Alexander Larsson [Mon, 10 Jun 2013 12:55:54 +0000 (14:55 +0200)]
GtkScrollableWindow: Automatically set focus adjustments

When adding with a viewport we automatically set the focus
adjustments on the viewport from the scrolled window, so that
when any child widget gets focused we automatically scroll to it.

This is generally nice, but its particularly important for GtkListBox
where focus changing is how we navigate between rows.

We also ensure that the adjustments are always set before adding the
child to the viewport, which we will need later to pick up the
adjustments on add.

12 years agoGtkListBox: No need to manually clamp adjustment to focus
Alexander Larsson [Mon, 10 Jun 2013 12:41:51 +0000 (14:41 +0200)]
GtkListBox: No need to manually clamp adjustment to focus

Now that we use real widgets for rows the focus_vadjustment is
enough.

12 years agoGtkListBox: Clean up DnD code
Alexander Larsson [Mon, 10 Jun 2013 13:15:22 +0000 (15:15 +0200)]
GtkListBox: Clean up DnD code

Unhighlight rows if they are removed.

Drop the automatic drag motion based auto-scrolling. This is not really
right, as it e.g. hardcodes auto-scroll regions and assumes we're the only
widget inside the scrolled container. Its also imho in the wrong place,
autoscrolling if any should be done on the scrolled-window or viewport.
All the removed code is implementable outside Gtk+ though.